#Этот код превращает вашу фразу в заклинание :)


import math
import random
import msvcrt

def wait_for_key():
    print("Нажмите любую клавишу для завершения программы...")
    msvcrt.getch()

def perevod(chislo,start,end):
    slov = {'10' : 'A', '11' : 'B', '12' : 'C', '13' : 'D', '14' : 'E', '15' : 'F', '16' : 'G', '17' : 'H', '18' : 'I', '19' : 'J', '20' : 'K', '21' : 'L', '22' : 'M', '23' : 'N', '24' : 'O', '25' : 'P', '26' : 'Q', '27' : 'R', '28' : 'S', '29' : 'T', '30' : 'U', '31' : 'V', '32' : 'W', '33' : 'X', '34' : 'Y', '35' : 'Z','36' : ' '}
    chislo = int(chislo,start)
    s = ''
    while True:
        per = chislo % end
        if str(per) in slov.keys():
            s += slov[str(per)]
        elif per not in slov.keys():
            s += str(chislo % end)
        chislo = chislo // end
        
        if chislo < end:
            if str(chislo) in slov.keys():
                s += slov[str(chislo)]
            elif chislo != 0:
                s += str(chislo)
            
            break
    return s[::-1]

def custom_hash_function(input_string):
    alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ '
    if len(input_string) < 17:
        input_string += ''.join(random.choice(alphabet) for _ in range(17 - len(input_string)))
    chunk_size = math.ceil(len(input_string) / 11)
    chunks = [input_string[i:i+chunk_size] for i in range(0, len(input_string), chunk_size)]

    print(chunks)
    alphabet =alphabet.upper()
    indexes = [9 + alphabet.index(char.upper()) for char in input_string]

    maxi = max(indexes)

    result = [perevod(chunk, maxi, 10) for chunk in chunks]
    stepsi = []
    divisors = [9, 4, 3, 4, 7, 5, 9, 10, 2, 1, 3]
    for i in range(0,len(result)):
        stepsn = 0
        stepsn = count_steps(int(result[i]), divisors[i])
        stepsi.append(stepsn)
    if len(stepsi) < 11:
        if stepsi[0] == 0 or stepsi[0] == 3 or stepsi[0] == 6:
            stepsi.append(random.randint(1, 3)) #тип урона
            stepsi.append(random.randint(0, 1000)) #идекс призванного существа
        else:
            stepsi.append(random.randint(1, 3))
            stepsi.append(0)



    return stepsi

def count_steps(number, divisor):
    steps = 0
    while number >= divisor:
        number = number // divisor
        steps += 1
    return steps




def main():
    a=input('Введите заклинание латиницей: ')
    a=a.upper()
    par = custom_hash_function(a)
    len(par)
    spell = {
    "школа": ["преобразование", "очарование", "воплощение", "вызов", "прорицание", "иллюзия", "некромантия", "ограждение", "преграждение"],
    "время накладывания": ["1 действие", "1 бонусное действие", "1 реакция", "число минут"],
    "дистанция": ["Касание", "Число метров", "специальная"],
    "массовость":["На одного", "На число объектов", "На площадь","Специальная"],
    "компоненты": ["В", "С", "М", "В, С", "В, М", "С, М", "В, С, М"],
    "длительность": ["мгновенная", "число раундов", "число минут", "пока концентрируетесь", "до развеяния"],
    "идентификатор_мировоззрения":["Законно-добрый", "Нейтрально-добрый", "Хаотично-добрый", "Законно-нейтральный", "Нейтральный", "Хаотично-нейтральный", "Законно-злой", "Нейтрально-злой", "Хаотично-злой"],
    "план бытия":["Материальная плоскость", "Астральная плоскость", "Эфирная плоскость", "План теней", "План огня", "План воды", "План воздуха", "План земли", "План хаоса", "План порядка"],
    "цена заклятия":["количество жизни", "количество манны"],
    "урон":["положительный", "отрицательный(лечение)","нет урона"],
    "призванное существо":[f'существо с индексом {par[10]}']
    }
    spell_list = []
    for i in range(len(par)):
        key = list(spell.keys())[i]
        if par[i] < len(spell[key]):
            value_index = par[i]
            value = spell[key][value_index]
            spell_boost = spell[key]+": "+value
            spell_list.append(spell_boost)
        else:
            par[i] = len(spell[key]) - 1
            value = spell[key][par[i]]
            spell_list.append(value)

    print(spell_list)
    wait_for_key()


if __name__ == "__main__":
    # Ваш код здесь, который будет выполняться, если скрипт запущен напрямую
    main()
